package com.rudolfheszele.smsselector.controller;

/**
 * This class is the only point in an application to reach the concrete ControllerFactory implementation
 * @author Rudolf Heszele
 * @version 0.2
 */
public class ControllerFactoryFactory
{
	/**
	 * This method is used to get a reference to the actual ControllerFactory instance
	 * @return An object implementing the ControllerFactory interface
	 * @see ControllerFactory
	 */
	public static ControllerFactory getControllerFactory()
	{
		return sControllerFactory;
	}
	
	/**
	 * This method sets the actual factory. It can be invoked at the startup of the application
	 * @param controllerFactory The actual ControllerFactory implementation 
	 */
	public static void setControllerFactory(ControllerFactory controllerFactory)
	{
		sControllerFactory = controllerFactory;
	}
	
	private static ControllerFactory sControllerFactory;
}
